﻿ #region Disclaimer/Info
 
 /////////////////////////////////////////////////////////////////////////////////////////////////
 //
 //   File:		IBlogTheme.cs
 //   Website:		http://dexterblogengine.com/
 //   Authors:		http://dexterblogengine.com/About.ashx
 //   Rev:		1
 //   Created:		19/01/2011
 //   Last edit:		19/01/2011
 //   License:		GNU Library General Public License (LGPL)
 //   File:            IBlogTheme.cs
 //   For updated news and information please visit http://dexterblogengine.com/
 //   Dexter is hosted to Codeplex at http://dexterblogengine.codeplex.com
 //   For any question contact info@dexterblogengine.com
 //
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
 #endregion
 

using System;

namespace Dexter.Services {
	/// <summary>
	/// 	The Blog Theme Contracts
	/// </summary>
	public interface IBlogTheme {
		/// <summary>
		/// 	Gets the name.
		/// </summary>
		/// <value>The name.</value>
		string Name { get; }

		/// <summary>
		/// 	Gets the image URL.
		/// </summary>
		/// <param name = "image">The image.</param>
		/// <returns></returns>
		Uri GetFileUrl ( string image );

		/// <summary>
		/// 	Gets the image path.
		/// </summary>
		/// <param name = "image">The image.</param>
		/// <returns></returns>
		string GetFilePath ( string image );

		/// <summary>
		/// 	Gets the image URL.
		/// </summary>
		/// <param name = "image">The image.</param>
		/// <returns></returns>
		Uri GetImageUrl ( string image );

		/// <summary>
		/// 	Gets the image path.
		/// </summary>
		/// <param name = "image">The image.</param>
		/// <returns></returns>
		string GetImagePath ( string image );

		/// <summary>
		/// 	Gets the script URL.
		/// </summary>
		/// <param name = "name">The name.</param>
		/// <returns></returns>
		Uri GetScriptUrl ( string name );

		/// <summary>
		/// 	Gets the script path.
		/// </summary>
		/// <param name = "image">The image.</param>
		/// <returns></returns>
		string GetScriptPath ( string image );

		/// <summary>
		/// 	Gets the style URL.
		/// </summary>
		/// <param name = "name">The name.</param>
		/// <returns></returns>
		Uri GetStyleUrl ( string name );

		/// <summary>
		/// 	Gets the style path.
		/// </summary>
		/// <param name = "image">The image.</param>
		/// <returns></returns>
		string GetStylePath ( string image );

		/// <summary>
		/// 	Gets the media URL.
		/// </summary>
		/// <param name = "name">The name.</param>
		/// <returns></returns>
		Uri GetMediaUrl ( string name );

		/// <summary>
		/// 	Gets the media path.
		/// </summary>
		/// <param name = "image">The image.</param>
		/// <returns></returns>
		string GetMediaPath ( string image );

		/// <summary>
		/// 	Gets the masterpage URL.
		/// </summary>
		/// <returns></returns>
		Uri GetMasterpageUrl ( );

		/// <summary>
		/// 	Templates the file path.
		/// </summary>
		/// <param name = "templateFileName">Name of the template file.</param>
		/// <returns></returns>
		string TemplateFilePath ( string templateFileName );

		/// <summary>
		/// Templates the master file path.
		/// </summary>
		/// <param name = "masterFileName">Name of the master file.</param>
		/// <returns></returns>
		string TemplateMasterFilePath ( string masterFileName );
	}
}
